package com.mcxx.modules.minimumliving.service;

import com.mcxx.modules.miniSalvation.family.entity.DemocraticAppraisalEntity;
import com.mcxx.modules.miniSalvation.order.dto.*;
import com.mcxx.modules.miniSalvation.order.param.OrderListSearchParam;
import com.mcxx.result.BaseResult;
import com.yinhai.ta404.component.audit.vo.ExcelInfo;
import com.yinhai.ta404.core.security.vo.UserAccountVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;




public interface BacklogService {


    Map<String, List<String>> sendCheck(List<CheckDTO> checkList, UserAccountVo userAccountVo, String businessType,String checkType);


    byte[] getCheckReportFile(String fileKey,String fileType);


    void cancelSalvationRequestTown(String orderId,  String revokeReason, UserAccountVo userAccountVo);


    Map<String, List<String>> cancelSalvationRequestTowns(List<String> orderIdList, UserAccountVo userAccountVo);


    String saveInHouseRecord(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);


    void modifyInHouseRecord(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);

     String confirmInhouseRecordCounty(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);


    String addDemocraticAppraisal(DemocraticAppraisalEntity democraticAppraisalEntity, List<String> orderCertIdList, UserAccountVo userAccountVo);


    void saveSalvationAudit(OrderReviewDTO orderReviewDTO, UserAccountVo userAccountVo);


    @Deprecated
    int isCanCalcFamilySalary(String orderId);


    void isCanInHouse(String orderId, UserAccountVo userAccountVo);


    void isCanInHouseRecheck(String orderId, UserAccountVo userAccountVo);




    OrderStateVerifyDTO isCanAudit(String orderId, String submitType, String nextCondition, UserAccountVo userAccountVo);


    void isCanAuditRecheck(String orderId,String familyId,UserAccountVo userAccountVo);


    void isCanDemocraticAppraisal(String orderId, UserAccountVo userAccountVo);

    void reCheckCanDemocraticAppraisal(String orderId, UserAccountVo userAccountVo);

    BaseResult<OrderDetailDTO> getOrderDetail(String orderId, String checkDetailStatus);

    Map<String,Object> getInfoBeforeAudit(String orderId);


    BaseResult<OrderApproveDTO> getSalvationApprove(String orderId);


    int submitSalvationRequest(OrderReviewDTO orderReviewDTO, UserAccountVo userAccountVo);





    void isCanInHouseCounty(String orderId,UserAccountVo userAccountVo);


     void isCanAuditCounty(String orderId, UserAccountVo userAccountVo);


    String saveInHouseRecordCounty(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);


    int modifyInHouseRecordCounty(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);




    String approveSalvationRequest(OrderApproveDTO orderReviewDTO, UserAccountVo userAccountVo);

    BaseResult<Map>  verifyHouseholdCancelFundPay(OrderApproveDTO orderApproveDTO, UserAccountVo accountVo);

    void approveHouseholdCancel(OrderApproveDTO orderApproveDTO, UserAccountVo userAccountVo);

    void saveApproveSalvation(OrderApproveDTO orderApproveDTO, UserAccountVo userAccountVo);


    BaseResult<Boolean> confirmFamilySalaryInfo(OrderSalaryDTO orderSalary, Map<String, String> memberMap, UserAccountVo userAccountVo);


    int chengeMemberSaveObject(String orderId,String familyId,String memberId,String type,String isMaster);


    Map<String, List<String>> exceBatchReport(List<String> orderIdList, UserAccountVo userAccountVo);

    int changDocHelpPoor(String orderId,String docHelpPoor);

    void isCanUploadCheckFile(String familyId,String orderId);

     int uploadCheckFile(MultipartFile[] files, String orderId,String reason, String areaCode);

    ExcelInfo exportTownSalvation(OrderListSearchParam param, UserAccountVo accountVo);


    void sendBackSys(String orderId, String content, UserAccountVo userAccountVo, String businessType);

    int decideIncome(String orderId,String familyId);


    Map<String, Object> queryReportDetail(String orderId);



    Map<String, List<String>> sendBatchCheck(List<CheckDTO> checkList, UserAccountVo userAccountVo, String businessType,String checkType);
}
